﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

public partial class TLChiNganHang : System.Web.UI.Page
{
    double tiencuocthangnayVAT = 0, tienhangthangnayVAT = 0, tienhangthangnaykhongVAT = 0, tiencuocKhongVAT = 0, sodukitruockhongVAT = 0, sodukitruocVAT = 0;
    double sotiendathanhtoankitruocVAT = 0, sotiendathanhtoankitruockhongVAt = 0;
    int pc;
    int loaicongno;
    SqlParameter[] p;
    clsXuLy ex = new clsXuLy();
    string frmName = "frmchinganhang";
    static int f_SuDung = 0, f_Them = 0, f_Sua = 0, f_Xoa = 0, f_XemTatCa = 0, f_InBaoCao = 0;
    public string Header = System.Configuration.ConfigurationSettings.AppSettings["Header"].ToString();
    static DataTable dt;
    static int PageNumber = 6;
    static int CurrentPage = 1;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(Convert.ToString(Session["user"])))
            gstGetMess("Hết phiên làm việc, vui lòng đăng nhập để tiếp tục", "Default.aspx");
        else
        {
            if (!IsPostBack)
            {


                string idnguoidung = Session["IDUser"].ToString();
                string sql = "select SuDung,Them,Sua,Xoa,InBaoCao,XemTatCa from XDAPhanQuyen where IDnguoidung='" + idnguoidung + "' and tag='" + frmName + "'";

                DataTable dt2 = ex.GetData_Text(sql);
                if (dt2.Rows.Count > 0)
                {
                    f_SuDung = int.Parse(dt2.Rows[0]["SuDung"].ToString());
                    f_Them = int.Parse(dt2.Rows[0]["Them"].ToString());
                    f_Sua = int.Parse(dt2.Rows[0]["Sua"].ToString());
                    f_Xoa = int.Parse(dt2.Rows[0]["Xoa"].ToString());
                    f_InBaoCao = int.Parse(dt2.Rows[0]["InBaoCao"].ToString());
                    f_XemTatCa = int.Parse(dt2.Rows[0]["XemTatCa"].ToString());
                }
                if (f_SuDung.Equals(1))
                {
                    CurrentPage = 1;


                    Title = "Quản lý thiết lập thu ngân hàng | " + Header;
                    for (int i = 1; i <= 12; i++)
                    {
                        dlThang.Items.Add(new ListItem("Tháng " + i.ToString(), i.ToString()));
                    }
                    dlThang.Items.Insert(0, new ListItem("Theo thời gian", ""));
                    dlThang.SelectedIndex = 0;

                    int year1 = DateTime.Now.Year - 3;
                    int year2 = DateTime.Now.Year;
                    for (int i = year2; i >= year1; i--)
                    {
                        dlNam.Items.Add(new ListItem("Năm " + i.ToString(), i.ToString()));
                    }
                    dlNam.SelectedValue = year2.ToString();

                    txtTuNgay.Text = DateTime.Now.ToString("dd/MM/yyyy");
                    txtDenNgay.Text = DateTime.Now.ToString("dd/MM/yyyy");
                    dlNam.Visible = false;
                    btnCancel_Click(sender, e);
                    LoadNganHang();
                    LoadTaiKhoan();
                    LoadNCCTK();
                }
                else
                    gstGetMess("Bạn không có quyền xem trang này", "Home.aspx");

            }
        }
    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        if (f_Them.Equals(1))
        {
            try
            {

                Guid lenhchi = Guid.NewGuid();
                p = new SqlParameter[7];
                p[0] = new SqlParameter("@IDs", lenhchi);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@NgayThang", ex.GetNgayThang(txtngaythang.Text.Trim()));
                p[1].SqlDbType = SqlDbType.SmallDateTime;
                p[2] = new SqlParameter("@BenNhanTien", ex.GetGuid(drkhachhang.SelectedValue));
                p[2].SqlDbType = SqlDbType.UniqueIdentifier;
                p[3] = new SqlParameter("@SoTien", double.Parse(txtsotien.Text.Trim().Equals("") ? "0" : txtsotien.Text.Trim()));
                p[3].SqlDbType = SqlDbType.Float;
                p[4] = new SqlParameter("@TaiKhoan", ex.GetGuid(drsotaikhoan.SelectedValue));
                p[4].SqlDbType = SqlDbType.UniqueIdentifier;
                p[5] = new SqlParameter("@NoiDung", txtnoidung.Text.Trim());
                p[5].SqlDbType = SqlDbType.Int;
                p[6] = new SqlParameter("@Del", 1);
                p[6].SqlDbType = SqlDbType.Int;
                ex.ExecuteNonQuerry("sp_XDATLChiNganHang_Add", p);
                loaicongno = 1;
                p = new SqlParameter[1];
                p[0] = new SqlParameter("@NgayThang", ex.GetNgayThang(txtngaythang.Text.Trim()));
                p[0].SqlDbType = SqlDbType.SmallDateTime;
                dt = ex.GetData("sp_xdagetsophieuchiconnotravat_NganHang", p);
                int sopc = Int16.Parse(dt.Rows[0]["sopc"].ToString());
                if (sopc == 0)
                {
                    pc = 1;

                }
                else pc = sopc + 1;

                p = new SqlParameter[11];
                p[0] = new SqlParameter("@IDs", Guid.NewGuid());
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@NgayThang", ex.GetNgayThang(txtngaythang.Text.Trim()));
                p[1].SqlDbType = SqlDbType.SmallDateTime;
                p[2] = new SqlParameter("@NoiDung", txtnoidung.Text.Trim());
                p[2].SqlDbType = SqlDbType.NVarChar;
                p[3] = new SqlParameter("@DonVi", ex.GetGuid(drkhachhang.SelectedValue));
                p[3].SqlDbType = SqlDbType.UniqueIdentifier;
                p[4] = new SqlParameter("@SoPC", pc);
                p[4].SqlDbType = SqlDbType.Int;
                p[5] = new SqlParameter("@TaiKhoan", ex.GetGuid(drsotaikhoan.SelectedValue));
                p[5].SqlDbType = SqlDbType.UniqueIdentifier;
                p[6] = new SqlParameter("@Del", 1);
                p[6].SqlDbType = SqlDbType.Int;
                p[7] = new SqlParameter("@LoaiCongNo", loaicongno);
                p[7].SqlDbType = SqlDbType.Int;
                p[8] = new SqlParameter("@SoTien", double.Parse(txtsotien.Text.Trim().Equals("") ? "0" : txtsotien.Text.Trim()));
                p[8].SqlDbType = SqlDbType.Float;
                p[9] = new SqlParameter("@IDLenhChi", lenhchi);
                p[9].SqlDbType = SqlDbType.UniqueIdentifier;
                p[10] = new SqlParameter("@NhanVien", DBNull.Value);
                p[10].SqlDbType = SqlDbType.UniqueIdentifier;
                ex.ExecuteNonQuerry("sp_xdaphieuchicongno_Add", p);   
                gstGetMess("Lưu thành công", "");
                btnCancel_Click(sender, e);
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình lưu, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tthiết lập lệnh chi\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền thêm dữ liệu trên trang này", "");
    }

   

    void LoadKhachHang()
    {
        drkhachhang.Items.Clear();
        drkhachhang.DataSource = ex.GetData("sp_ThanhToanCN_NhaCungCap_ListAll");
        drkhachhang.DataBind();
        drkhachhang.Items.Insert(0, new ListItem("--Chọn khách hàng--", ""));
        drkhachhang.SelectedIndex = 0;
    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        LoadKhachHang();
        
        drnganhang.SelectedIndex = 0;
        drsotaikhoan.SelectedIndex = 0;
        drkhachhang.SelectedIndex = 0;
        txtnoidung.Text = "";
        txtsotien.Text = "";

        txtngaythang.Text = "";

        GV.DataSource = ex.GetData("sp_xdatlchinganhang_List");
        GV.DataBind();
        LoadFooterGV();

        btnSave.Visible = true;
        btncapnhat.Visible = false;

        drnganhang.Enabled = true;
        drsotaikhoan.Enabled = true;
        drkhachhang.Enabled = true;




    }
    private void gstGetMess(string gstMess, string gstLink)
    {
        if (gstLink == "")
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('" + gstMess + "')", true);
        else
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), " ", "alert('" + gstMess + "');window.location.href='" + gstLink + "'", true);

    }
    protected void GV_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        string ID = e.CommandArgument.ToString();
        hdID.Value = ID;
        Guid gID = new Guid(ID);
        p = new SqlParameter[1];
        p[0] = new SqlParameter("@IDs", gID);
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;

        if (e.CommandName.Equals("Select"))
        {
            DataTable dt = ex.GetData("sp_XDATLChiNganHang_ListByID", p);
            if (dt.Rows.Count > 0)
            {
                try
                {
                    LoadKhachHang();
                    drkhachhang.SelectedValue = dt.Rows[0]["bennhantien"].ToString();
                    drnganhang.SelectedValue = dt.Rows[0]["nganhang"].ToString();

                    txtngaythang.Text = dt.Rows[0]["ngaythang"].ToString();

                    txtsotien.Text = dt.Rows[0]["sotien"].ToString();
                    drsotaikhoan.SelectedValue = dt.Rows[0]["taikhoan"].ToString();
                    txtnoidung.Text = dt.Rows[0]["noidung"].ToString();
                    drkhachhang.Enabled = false;

                }
                catch (Exception ax)
                {
                    gstGetMess("Có lỗi trong quá trình xem, xem trong file log", "");
                    ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tthiết lập lệnh chi\t" + ax.Message);
                }

            }
            btncapnhat.Visible = true;
            btnSave.Visible = false;
            btncapnhat.Visible = CheckKhoa(txtngaythang.Text.Trim());
        }
        else
            if (e.CommandName.Equals("Del"))
            {
                if (f_Xoa.Equals(1))
                {
                    try
                    {
                        p = new SqlParameter[1];
                        p[0] = new SqlParameter("@IDs", gID);
                        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                        ex.ExecuteNonQuerry("sp_xdaphieuchicongno_Del", p);

                        p = new SqlParameter[1];
                        p[0] = new SqlParameter("@IDs", gID);
                        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                        ex.ExecuteNonQuerry("sp_xdatlchinganhang_Del", p);
                        btnCancel_Click(sender, e);
                        gstGetMess("Xóa thành công", "");


                    }
                    catch (Exception ax)
                    {
                        gstGetMess("Có lỗi trong quá trình xóa, xem trong file log", "");
                        ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tthiết lập lệnh chi\t" + ax.Message);

                    }
                }
                else
                    gstGetMess("Bạn không có quyền xóa dữ liệu trên trang này", "");
            }
    }
    protected void btncapnhat_Click(object sender, EventArgs e)
    {
        if (f_Sua.Equals(1))
        {
            try
            {
                Guid gID = new Guid(hdID.Value);
                p = new SqlParameter[7];
                p[0] = new SqlParameter("@IDs", gID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@NgayThang", ex.GetNgayThang(txtngaythang.Text.Trim()));
                p[1].SqlDbType = SqlDbType.SmallDateTime;
                p[2] = new SqlParameter("@BenNhanTien", ex.GetGuid(drkhachhang.SelectedValue));
                p[2].SqlDbType = SqlDbType.UniqueIdentifier;
                p[3] = new SqlParameter("@SoTien", double.Parse(txtsotien.Text.Trim().Equals("") ? "0" : txtsotien.Text.Trim()));
                p[3].SqlDbType = SqlDbType.Float;
                p[4] = new SqlParameter("@TaiKhoan", ex.GetGuid(drsotaikhoan.SelectedValue));
                p[4].SqlDbType = SqlDbType.UniqueIdentifier;
                p[5] = new SqlParameter("@NoiDung", txtnoidung.Text.Trim());
                p[5].SqlDbType = SqlDbType.Int;
                p[6] = new SqlParameter("@Del", 1);
                p[6].SqlDbType = SqlDbType.Int;
                ex.ExecuteNonQuerry("sp_XDATLChiNganHang_Update", p);
                p = new SqlParameter[6];

                p = new SqlParameter[5];
                p[0] = new SqlParameter("@IDs", gID);
                p[0].SqlDbType = SqlDbType.UniqueIdentifier;
                p[1] = new SqlParameter("@SoTien", double.Parse(txtsotien.Text.Trim().Equals("") ? "0" : txtsotien.Text.Trim()));
                p[1].SqlDbType = SqlDbType.Float;
                p[2] = new SqlParameter("@NgayThang", ex.GetNgayThang(txtngaythang.Text.Trim()));
                p[2].SqlDbType = SqlDbType.SmallDateTime;
                p[3] = new SqlParameter("@TK", ex.GetGuid(drsotaikhoan.SelectedValue));
                p[3].SqlDbType = SqlDbType.UniqueIdentifier;
                p[4] = new SqlParameter("@Noidung", txtnoidung.Text.Trim());
                p[4].SqlDbType = SqlDbType.NVarChar;
                ex.ExecuteNonQuerry("sp_LenhChi_UpdatePhieuChiCongNo", p);
                btnCancel_Click(sender, e);
                gstGetMess("Cập nhật thành công", "");
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình cập nhật, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tthiết lập lệnh chi\t" + ax.Message);
            }
        }
        else
            gstGetMess("Bạn không có quyền sửa dữ liệu trên trang này", "");
    }


    void LoadNganHang()
    {
        drnganhang.Items.Clear();
        drnganhang.DataSource = ex.GetData("sp_xdanganhang_Sosec_List");
        drnganhang.DataBind();
        drnganhang.Items.Insert(0, new ListItem("--Chọn ngân hàng--", ""));
        drnganhang.SelectedIndex = 0;
    }
    void LoadTaiKhoan()
    {
        drsotaikhoan.Items.Clear();
        drsotaikhoan.DataSource = ex.GetData("sp_xdataikhoan_Sosec_List");
        drsotaikhoan.DataBind();
        drsotaikhoan.Items.Insert(0, new ListItem("--Chọn tài khoản--", ""));
        drsotaikhoan.SelectedIndex = 0;
    }


    protected void drnganhang_SelectedIndexChanged(object sender, EventArgs e)
    {
        p = new SqlParameter[1];
        p[0] = new SqlParameter("@IDs", ex.GetGuid(drnganhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        DataTable dt = ex.GetData("sp_xdataikhoan_Sosec_ListByNganHang", p);
        if (dt.Rows.Count > 0)
        {
            try
            {
                drsotaikhoan.Items.Clear();
                drsotaikhoan.DataSource = dt;
                drsotaikhoan.DataBind();
                drsotaikhoan.Items.Insert(0, new ListItem("--Chọn tài khoản--", ""));
                drsotaikhoan.SelectedIndex = 0;
            }
            catch (Exception ax)
            {
                gstGetMess("Có lỗi trong quá trình xem, xem trong file log", "");
                ex.WriteLog(Server.MapPath("Log.txt"), DateTime.Now.ToString() + "\tthiết lập lệnh chi\t" + ax.Message);
            }
        }
    }
    public void LoadTienHang()
    {
        #region thanhtienVAT
        p = new SqlParameter[3];
        p[0] = new SqlParameter("@NhaCungCap", ex.GetGuid(drkhachhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@Thang", int.Parse(txtngaythang.Text.Trim().Split('/')[1]));
        p[1].SqlDbType = SqlDbType.Int;
        p[2] = new SqlParameter("@Nam", int.Parse(txtngaythang.Text.Trim().Split('/')[2]));
        p[2].SqlDbType = SqlDbType.Int;
        dt = ex.GetData("sp_TienHangThangNay_CongNo", p);
        if (dt.Rows[0]["gia"].ToString().Equals(""))
            tienhangthangnayVAT = 0;
        else
            tienhangthangnayVAT = double.Parse(dt.Rows[0]["gia"].ToString());

        p[0] = new SqlParameter("@NhaCungCap", ex.GetGuid(drkhachhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@Thang", int.Parse(txtngaythang.Text.Trim().Split('/')[1]));
        p[1].SqlDbType = SqlDbType.Int;
        p[2] = new SqlParameter("@Nam", int.Parse(txtngaythang.Text.Trim().Split('/')[2]));
        p[2].SqlDbType = SqlDbType.Int;
        dt = ex.GetData("sp_TienCuocVCThangNay_CongNo", p);
        if (dt.Rows[0]["giacuoc"].ToString().Equals(""))
            tiencuocthangnayVAT = 0;
        else
            tiencuocthangnayVAT = double.Parse(dt.Rows[0]["giacuoc"].ToString());

        #endregion
        #region sodukitruocVAT

        p[0] = new SqlParameter("@NhaCungCap", ex.GetGuid(drkhachhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@Thang", int.Parse(txtngaythang.Text.Trim().Split('/')[1]));
        p[1].SqlDbType = SqlDbType.Int;
        p[2] = new SqlParameter("@Nam", int.Parse(txtngaythang.Text.Trim().Split('/')[2]));
        p[2].SqlDbType = SqlDbType.Int;
        dt = ex.GetData("sp_ThanhToan_SoDuKiTruoc", p);
        sodukitruocVAT = double.Parse(dt.Rows[0]["sodukitruoc"].ToString());
        #endregion


        #region thanhtienkhongVAT
        p = new SqlParameter[3];
        p[0] = new SqlParameter("@NhaCungCap", ex.GetGuid(drkhachhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@Thang", int.Parse(txtngaythang.Text.Trim().Split('/')[1]));
        p[1].SqlDbType = SqlDbType.Int;
        p[2] = new SqlParameter("@Nam", int.Parse(txtngaythang.Text.Trim().Split('/')[2]));
        p[2].SqlDbType = SqlDbType.Int;
        dt = ex.GetData("sp_TienHangThangNay_CongNo_KhongVAT", p);
        if (dt.Rows[0]["gia"].ToString().Equals(""))
            tienhangthangnaykhongVAT = 0;
        else
            tienhangthangnaykhongVAT = double.Parse(dt.Rows[0]["gia"].ToString());

        p[0] = new SqlParameter("@NhaCungCap", ex.GetGuid(drkhachhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@Thang", int.Parse(txtngaythang.Text.Trim().Split('/')[1]));
        p[1].SqlDbType = SqlDbType.Int;
        p[2] = new SqlParameter("@Nam", int.Parse(txtngaythang.Text.Trim().Split('/')[2]));
        p[2].SqlDbType = SqlDbType.Int;
        dt = ex.GetData("sp_TienCuocVCKhongVATThangNay_CongNo", p);
        if (dt.Rows[0]["giacuoc"].ToString().Equals(""))
            tiencuocKhongVAT = 0;
        else
            tiencuocKhongVAT = double.Parse(dt.Rows[0]["giacuoc"].ToString());



        #endregion

        #region
        p[0] = new SqlParameter("@NhaCungCap", ex.GetGuid(drkhachhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@Thang", int.Parse(txtngaythang.Text.Trim().Split('/')[1]));
        p[1].SqlDbType = SqlDbType.Int;
        p[2] = new SqlParameter("@Nam", int.Parse(txtngaythang.Text.Trim().Split('/')[2]));
        p[2].SqlDbType = SqlDbType.Int;
        dt = ex.GetData("sp_ThanhToan_SoDuKiTruocKhongVAT_CongNoTra", p);
        sodukitruockhongVAT = double.Parse(dt.Rows[0]["sodukitruoc"].ToString());
        #endregion


        #region thanhtoankytruoc VAT

        p[0] = new SqlParameter("@NhaCungCap", ex.GetGuid(drkhachhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@Thang", int.Parse(txtngaythang.Text.Trim().Split('/')[1]));
        p[1].SqlDbType = SqlDbType.Int;
        p[2] = new SqlParameter("@Nam", int.Parse(txtngaythang.Text.Trim().Split('/')[2]));
        p[2].SqlDbType = SqlDbType.Int;
        dt = ex.GetData("f_sp_SoTienDaThanhToanKyTruoc_CongNoVAT", p);
        sotiendathanhtoankitruocVAT = double.Parse(dt.Rows[0]["sotiendathanhtoan"].ToString());

        #endregion
        #region thanhtoankykhongtruoc VAT

        p[0] = new SqlParameter("@NhaCungCap", ex.GetGuid(drkhachhang.SelectedValue));
        p[0].SqlDbType = SqlDbType.UniqueIdentifier;
        p[1] = new SqlParameter("@Thang", int.Parse(txtngaythang.Text.Trim().Split('/')[1]));
        p[1].SqlDbType = SqlDbType.Int;
        p[2] = new SqlParameter("@Nam", int.Parse(txtngaythang.Text.Trim().Split('/')[2]));
        p[2].SqlDbType = SqlDbType.Int;
        dt = ex.GetData("f_sp_SoTienDaThanhToanKyTruoc_CongNoTraKhongVAT", p);
        sotiendathanhtoankitruockhongVAt = double.Parse(dt.Rows[0]["sotiendathanhtoan"].ToString());
        #endregion
    }
    private bool CheckKhoa(string ngaythang)
    {
        //load trang thai khoa
        if (!ngaythang.Trim().Equals(""))
        {

            p = new SqlParameter[3];
            p[0] = new SqlParameter("@Name", "TLLenhChi");
            p[0].SqlDbType = SqlDbType.NVarChar;
            p[1] = new SqlParameter("@Thang", int.Parse(ngaythang.Trim().Split('/')[1]));
            p[1].SqlDbType = SqlDbType.Int;
            p[2] = new SqlParameter("@Nam", int.Parse(ngaythang.Trim().Split('/')[2]));
            p[2].SqlDbType = SqlDbType.Int;

            string index = ex.GetValueString("sp_xdakhoa_Check", p);

            if (index.Trim().Equals("") || index.Trim().Equals("1"))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else return false;
    }

    protected void btnXem_Click(object sender, EventArgs e)
    {
        getDate();
        if (dlnhacungcap.SelectedIndex == 0)
        {

            p = new SqlParameter[2];
            p[0] = new SqlParameter("@TuNgay", ex.GetNgayThang(hdTuNgay.Value));
            p[0].SqlDbType = SqlDbType.SmallDateTime;
            p[1] = new SqlParameter("@DenNgay", ex.GetNgayThang(hdDenNgay.Value));
            p[1].SqlDbType = SqlDbType.SmallDateTime;

            GV.DataSource = ex.GetData("sp_xdatlchinganhang_ListTheoThoiGian", p);
            GV.DataBind();
            LoadFooterGV();
        }
        else
        {
            p = new SqlParameter[3];

            p[0] = new SqlParameter("@TuNgay", ex.GetNgayThang(hdTuNgay.Value));
            p[0].SqlDbType = SqlDbType.SmallDateTime;
            p[1] = new SqlParameter("@DenNgay", ex.GetNgayThang(hdDenNgay.Value));
            p[1].SqlDbType = SqlDbType.SmallDateTime;
            p[2] = new SqlParameter("@KhachHang", ex.GetGuid(dlnhacungcap.SelectedValue));
            p[2].SqlDbType = SqlDbType.UniqueIdentifier;
            GV.DataSource = ex.GetData("sp_xdatlchinganhang_ListTheoThoiGian_NCC", p);
            GV.DataBind();
            LoadFooterGV();
        }

    }
    void LoadFooterGV()
    {
        double ttiencovat = 0, sonhienlieu = 0;
        for (int i = 0; i < GV.Rows.Count; i++)
        {
            ttiencovat += double.Parse(GV.Rows[i].Cells[4].Text.Replace(",", ""));
        }
        if (GV.Rows.Count > 0)
        {
            GV.FooterRow.Cells[2].Text = "Tổng số";
            GV.FooterRow.Cells[2].HorizontalAlign = HorizontalAlign.Center;
            GV.FooterRow.Cells[4].Text = ttiencovat > 999 ? string.Format("{0:0,0}", ttiencovat) : ttiencovat.ToString();


        }
    }

    protected void txtngaythang_TextChanged(object sender, EventArgs e)
    {

    }
    
    public void getDate()
    {
        if (dlThang.SelectedIndex.Equals(0))
        {
            hdTuNgay.Value = txtTuNgay.Text;
            hdDenNgay.Value = txtDenNgay.Text;
        }
        else
        {
            txtTuNgay.Text = "1/" + dlThang.SelectedValue + "/" + dlNam.SelectedValue;
            txtDenNgay.Text = GetLastDayOfMonth(int.Parse(dlThang.SelectedValue)).ToString("dd/MM/yyyy");
            hdTuNgay.Value = txtTuNgay.Text;
            hdDenNgay.Value = txtDenNgay.Text;
        }
    }
    public DateTime GetLastDayOfMonth(int iMonth)
    {
        DateTime dtResult = new DateTime(int.Parse(dlNam.SelectedValue), iMonth, 1);
        dtResult = dtResult.AddMonths(1);
        dtResult = dtResult.AddDays(-(dtResult.Day));
        return dtResult;
    }
    
    protected void dlThang_SelectedIndexChanged(object sender, EventArgs e)
    {


        if (dlThang.SelectedIndex.Equals(0))
        {
            txtTuNgay.Visible = true;
            txtDenNgay.Visible = true;
            dlNam.Visible = false;
        }
        else
        {
            txtTuNgay.Visible = false;
            txtDenNgay.Visible = false;
            dlNam.Visible = true;
        }
        LoadNCCTK();
    }
    protected void btnXemPC_Click(object sender, EventArgs e)
    {
        getDate();


        if (dlnhacungcap.SelectedIndex == 0)
        {
            p = new SqlParameter[2];
            p[0] = new SqlParameter("@TuNgay", ex.GetNgayThang(hdTuNgay.Value));
            p[0].SqlDbType = SqlDbType.SmallDateTime;
            p[1] = new SqlParameter("@DenNgay", ex.GetNgayThang(hdDenNgay.Value));
            p[1].SqlDbType = SqlDbType.SmallDateTime;

            GVPhieuChi.DataSource = ex.GetData("sp_baocaocongnonganhang_List_TheoThoiGian", p);
            GVPhieuChi.DataBind();
            LoadFooterGVPhieuChi();
        }

        else if (dlnhacungcap.SelectedIndex > 0)
        {
            p = new SqlParameter[3];
            p[0] = new SqlParameter("@TuNgay", ex.GetNgayThang(hdTuNgay.Value));
            p[0].SqlDbType = SqlDbType.SmallDateTime;
            p[1] = new SqlParameter("@DenNgay", ex.GetNgayThang(hdDenNgay.Value));
            p[1].SqlDbType = SqlDbType.SmallDateTime;
            p[2] = new SqlParameter("@NCC", ex.GetGuid(dlnhacungcap.SelectedValue));
            p[2].SqlDbType = SqlDbType.UniqueIdentifier;
            GVPhieuChi.DataSource = ex.GetData("sp_baocaocongnonganhang_List_TheoThoiGian_NCC", p);
            GVPhieuChi.DataBind();
            LoadFooterGVPhieuChi();
        }
        GVPhieuChi.Visible = true;

    }

    void LoadFooterGVPhieuChi()
    {
        double sonhienlieu = 0;
        for (int i = 0; i < GVPhieuChi.Rows.Count; i++)
        {

            sonhienlieu += double.Parse(GVPhieuChi.Rows[i].Cells[4].Text.Replace(",", ""));


        }

        if (GVPhieuChi.Rows.Count > 0)
        {
            GVPhieuChi.FooterRow.Cells[1].Text = "Tổng số";
            GVPhieuChi.FooterRow.Cells[1].HorizontalAlign = HorizontalAlign.Center;
            GVPhieuChi.FooterRow.Cells[4].Text = sonhienlieu > 999 ? string.Format("{0:0,0}", sonhienlieu) : sonhienlieu.ToString();



        }
    }
    private void LoadFooter()
    {
        string[] field = { "sotien" };
        if (dt.Rows.Count > 0)
        {
            GVPhieuChi.FooterRow.Cells[2].Text = "Tổng cộng";
            GVPhieuChi.FooterRow.Cells[2].HorizontalAlign = HorizontalAlign.Center;
            for (int k = 3; k < 4; k++)
            {
                GVPhieuChi.FooterRow.Cells[k].Text = ConvertDecimal(double.Parse(dt.Compute("sum(" + field[k - 3] + ")", "").ToString()));
            }


        }
    }
    string ConvertDecimal(double s)
    {
        string q = "";
        if (s.ToString().Contains("."))
        {
            double x = double.Parse(s.ToString().Substring(0, s.ToString().IndexOf('.')));
            q = (x != 0 && x > 999) ? string.Format("{0:0,0}", x) : x.ToString();
            q += s.ToString().Substring(s.ToString().IndexOf('.'));
        }
        else
            q = (s != 0 && s > 999) ? string.Format("{0:0,0}", s) : s.ToString();
        return q;
    }

    void LoadNCCTK()
    {
        getDate();
        p = new SqlParameter[2];
        p[0] = new SqlParameter("@TuNgay", ex.GetNgayThang(hdTuNgay.Value));
        p[0].SqlDbType = SqlDbType.SmallDateTime;
        p[1] = new SqlParameter("@DenNgay", ex.GetNgayThang(hdDenNgay.Value));
        p[1].SqlDbType = SqlDbType.SmallDateTime;
        dlnhacungcap.Items.Clear();
        dlnhacungcap.DataSource = ex.GetData("sp_BaoCaoTraNganHang_NhaCungCap_TimKiem", p);
        dlnhacungcap.DataBind();
        dlnhacungcap.Items.Insert(0, new ListItem("--Chọn bên thanh toán--", ""));
        dlnhacungcap.SelectedIndex = 0;
    }
}